package com.iflysse.services;

import com.iflysse.pojo.bo.CommonBoResp;
import com.iflysse.pojo.bo.req.*;
import com.iflysse.pojo.bo.resp.TeacherAllClassBoResp;
import com.iflysse.pojo.bo.resp.TeacherClassBoResp;
import com.iflysse.pojo.bo.resp.TeacherClassUpdateBoResp;
import com.iflysse.pojo.bo.resp.TeachingClassNameListBoResp;

import java.sql.SQLException;

/**
 * 老师端   教师班级业务层接口
 */
public interface TeacherClassService {

    /**
     * 老师端 根据用户编号  查询该下得所有班级信息
     * @param teacherClassBoReq
     * @return
     */
    TeacherAllClassBoResp queryAllClassByUserId(TeacherClassBoReq teacherClassBoReq)throws SQLException;

    /**
     * 老师端添加学生时获取教学班的下拉列表
     * 老师端,获取所有教学班级
     * @return
     */
    TeachingClassNameListBoResp queryAllTeacherClassNames() throws SQLException;

    /**
     * 教师端 创建班级接口
     * @param addTeacherClassBoReq
     * @return
     * @throws SQLException
     */
    CommonBoResp addTeacherClass(AddTeacherClassBoReq addTeacherClassBoReq)throws SQLException;

    /**
     * 老师端删除班级信息
     * @param deleteTeacherClassBoReq
     * @return
     * @throws SQLException
     */
    CommonBoResp deleteTeacherClass(DeleteTeacherClassBoReq deleteTeacherClassBoReq)throws SQLException;

    /**
     * 学生批量绑定到教学班级
     * @param studentInTeacherClassBoReq
     * @return
     */
    CommonBoResp addStudentToTeacherClass(StudentInTeacherClassBoReq studentInTeacherClassBoReq) throws SQLException;

    /**
     * 将学生从教学班级中移除
     * @param studentInTeacherClassBoReq
     * @return
     */
    CommonBoResp removeStudentFromTeacherClass(StudentInTeacherClassBoReq studentInTeacherClassBoReq) throws SQLException;




    /**
     * 根据教学班级编号,
     * @param teachingClassIdBoReq
     * @return
     */
    TeacherClassUpdateBoResp getUpdateTeacherClassByClassId(TeachingClassIdBoReq teachingClassIdBoReq) throws SQLException;


    /**
     * 根据教学班级编号获取教学班级
     * @param teachingClassIdBoReq
     * @return
     */
    TeacherClassBoResp getTeacherClassByClassId(TeachingClassIdBoReq teachingClassIdBoReq) throws SQLException;

    /**
     * 修改教学班级
     * @param updateTeacherClassBoReq
     * @return
     */
    CommonBoResp updateTeacherClass(UpdateTeacherClassBoReq updateTeacherClassBoReq) throws SQLException;

}
